const awsRegions = [
  'us-east-1',
  'us-east-2',
  'us-west-1',
  'us-west-2',
  'ap-east-1',
  'ap-south-1',
  'ap-northeast-3',
  'ap-northeast-2',
  'ap-southeast-1',
  'ap-southeast-2',
  'ap-northeast-1',
  'ca-central-1',
  'cn-north-1',
  'cn-northwest-1',
  'eu-central-1',
  'eu-west-1',
  'eu-west-2',
  'eu-west-3',
  'eu-north-1',
  'me-south-1',
  'sa-east-1',
  'us-gov-east-1',
  'us-gov-west-1',
];
// Speech Synthesis
const speechSynthesisServices = ['System', 'Amazon Polly', 'Azure TTS'];

// 1. System
const speechSynthesisSystemLanguages: { [key: string]: string } = {
  // System language names for tts
  zh: ' 中文 ', // Chinese
  en: 'English', // English
  it: 'Italiano', // Italian
  sv: 'Svenska', // Swedish
  fr: 'Français', // French
  ms: 'Bahasa Melayu', // Malay
  de: 'Deutsch', // German
  he: 'עברית', // Hebrew
  id: 'Bahasa Indonesia', // Indonesian
  bg: 'български', // Bulgarian
  es: 'Español', // Spanish
  fi: 'Suomi', // Finnish
  pt: 'Português', // Portuguese
  nl: 'Nederlands', // Dutch
  ro: 'Română', // Romanian
  th: 'ไทย', // Thai
  ja: ' 日本語 ', // Japanese
  hr: 'Hrvatski', // Croatian
  sk: 'Slovenčina', // Slovak
  hi: 'हिन्दी', // Hindi
  uk: 'Українська', // Ukrainian
  vi: 'Tiếng Việt', // Vietnamese
  ar: 'العربية', // Arabic
  hu: 'Magyar', // Hungarian
  el: 'Ελληνικά', // Greek
  ru: 'русский', // Russian
  ca: 'Català', // Catalan
  nb: 'Norsk Bokmål', // Norwegian Bokmål
  da: 'Dansk', // Danish
  tr: 'Türkçe', // Turkish
  ko: '한국어', // Korean
  pl: 'Polski', // Polish
  cs: 'Čeština', // Czech
  af: 'Afrikaans', // Afrikaans
  sq: 'Shqip', // Albanian
  am: 'አማርኛ', // Amharic
  az: 'Azərbaycan', // Azerbaijani
  bn: 'বাংলা', // Bengali
  bs: 'Bosanski', // Bosnian
  my: 'ဗမာ', // Burmese
  et: 'Eesti', // Estonian
  fil: 'Filipino', // Filipino
  gl: 'Galego', // Galician
  ka: 'ქართული', // Georgian
  gu: 'ગુજરાતી', // Gujarati
  is: 'Íslenska', // Icelandic
  ga: 'Gaeilge', // Irish
  jv: 'Basa Jawa', // Javanese
  kn: 'ಕನ್ನಡ', // Kannada
  kk: 'Қазақша', // Kazakh
  km: 'ភាសាខ្មែរ', // Khmer
  lo: 'ລາວ', // Lao
  lv: 'Latviešu', // Latvian
  lt: 'Lietuvių', // Lithuanian
  mk: 'Македонски', // Macedonian
  ml: 'മലയാളം', // Malayalam
  mt: 'Malti', // Maltese
  mr: 'मराठी', // Marathi
  mn: 'Монгол', // Mongolian
  ne: 'नेपाली', // Nepali
  ps: 'پښتو', // Pashto
  fa: 'فارسی', // Persian
  sr: 'Српски', // Serbian
  si: 'සිංහල', // Sinhalese
  sl: 'Slovenščina', // Slovenian
  so: 'Soomaaliga', // Somali
  su: 'Basa Sunda', // Sundanese
  sw: 'Kiswahili', // Swahili
  ta: 'தமிழ்', // Tamil
  te: 'తెలుగు', // Telugu
  ur: 'اردو', // Urdu
  uz: 'Oʻzbekcha', // Uzbek
  cy: 'Cymraeg', // Welsh
  zu: 'isiZulu', // Zulu
};

// 2. Amazon Polly
const amazonPollyEngines = ['Standard', 'Neural'];

// https://docs.aws.amazon.com/polly/latest/dg/SupportedLanguage.html
// 35 languages
const amazonPollyLanguages: { [key: string]: string } = {
  arb: 'العربية', // Arabic
  'ar-AE': 'Arabic (Gulf)',
  'ca-ES': 'Català', // Catalan
  'cmn-CN': '中文（普通话 / 中国）', // Chinese (Mandarin/China)
  'yue-CN': '中文（粤语 / 中国）', // Chinese (Cantonese/China)
  'da-DK': 'Dansk', // Danish
  'nl-NL': 'Nederlands', // Dutch
  'en-AU': 'English (Australian)', // English (Australian)
  'en-GB': 'English (British)', // English (British)
  'en-IN': 'English (Indian)', // English (Indian)
  'en-NZ': 'English (New Zealand)', // English (New Zealand)
  'en-ZA': 'English (South African)', // English (South African)
  'en-US': 'English (US)', // English (US)
  'en-GB-WLS': 'English (Welsh)', // English (Welsh)
  'fi-FI': 'Suomi', // Finnish
  'fr-FR': 'Français', // French
  'fr-CA': 'Français (Canadien)', // French (Canadian)
  'de-DE': 'Deutsch', // German
  'de-AT': 'German (Austrian)', // German
  'hi-IN': 'हिन्दी', // Hindi
  'is-IS': 'Íslenska', // Icelandic
  'it-IT': 'Italiano', // Italian
  'ja-JP': '日本語', // Japanese
  'ko-KR': '한국어', // Korean
  'nb-NO': 'Norsk bokmål', // Norwegian
  'pl-PL': 'Polski', // Polish
  'pt-BR': 'Português (Brasil)', // Portuguese (Brazilian)
  'pt-PT': 'Português (Portugal)', // Portuguese (European)
  'ro-RO': 'Română', // Romanian
  'ru-RU': 'Русский', // Russian
  'es-ES': 'Español (España)', // Spanish (European)
  'es-MX': 'Español (México)', // Spanish (Mexican)
  'es-US': 'Español (Estados Unidos)', // Spanish (US)
  'sv-SE': 'Svenska', // Swedish
  'tr-TR': 'Türkçe', // Turkish
  'cy-GB': 'Cymraeg', // Welsh
};

const pollyStandardVoices: { [key: string]: string[] } = {
  arb: ['Zeina'],
  'cmn-CN': ['Zhiyu'],
  'da-DK': ['Naja', 'Mads'],
  'nl-NL': ['Lotte', 'Ruben'],
  'en-AU': ['Nicole', 'Russell'],
  'en-GB': ['Amy', 'Emma', 'Brian'],
  'en-IN': ['Aditi ', 'Raveena'],
  'en-US': ['Ivy', 'Joanna', 'Kendra', 'Kimberly', 'Salli', 'Joey', 'Justin', 'Matthew'],
  'en-GB-WLS': ['Geraint'],
  'fr-FR': ['Céline/Celine', 'Léa', 'Mathieu'],
  'fr-CA': ['Chantal'],
  'de-DE': ['Marlene', 'Vicki', 'Hans'],
  'hi-IN': ['Aditi'],
  'is-IS': ['Dóra/Dora', 'Karl'],
  'it-IT': ['Carla', 'Bianca', 'Giorgio'],
  'ja-JP': ['Mizuki', 'Takumi'],
  'ko-KR': ['Seoyeon'],
  'nb-NO': ['Liv'],
  'pl-PL': ['Ewa', 'Maja', 'Jacek', 'Jan'],
  'pt-BR': ['Camila', 'Vitória/Vitoria', 'Ricardo'],
  'pt-PT': ['Inês/Ines', 'Cristiano'],
  'ro-RO': ['Carmen'],
  'ru-RU': ['Tatyana', 'Maxim'],
  'es-ES': ['Conchita', 'Lucia', 'Enrique'],
  'es-MX': ['Mia'],
  'es-US': ['Lupe', 'Penélope/Penelope', 'Miguel'],
  'sv-SE': ['Astrid'],
  'tr-TR': ['Filiz'],
  'cy-GB': ['Gwyneth'],
};

const pollyNeuralVoices: { [key: string]: string[] } = {
  'ar-AE': ['Hala'],
  'ca-ES': ['Arlet'],
  'yue-CN': ['Hiujin'],
  'cmn-CN': ['Zhiyu'],
  'nl-NL': ['Laura'],
  'en-AU': ['Olivia'],
  'en-GB': ['Amy', 'Emma', 'Brian', 'Arthur'],
  'en-IN': ['Kajal'],
  'en-NZ': ['Aria'],
  'en-ZA': ['Ayanda'],
  'en-US': [
    'Ivy',
    'Joanna',
    'Kendra',
    'Kimberly',
    'Salli',
    'Joey',
    'Justin',
    'Kevin',
    'Matthew',
    'Ruth',
    'Stephen',
  ],
  'fi-FI': ['Suvi'],
  'fr-FR': ['Léa', 'Rémi'],
  'fr-CA': ['Gabrielle', 'Liam'],
  'de-DE': ['Vicki', 'Daniel'],
  'de-AT': ['Hannah'],
  'hi-IN': ['Kajal'],
  'it-IT': ['Bianca', 'Adriano'],
  'ja-JP': ['Takumi', 'Kazuha', 'Tomoko'],
  'ko-KR': ['Seoyeon'],
  'nb-NO': ['Ida'],
  'pl-PL': ['Ola'],
  'pt-BR': ['Camila', 'Vitória/Vitoria', 'Thiago'],
  'pt-PT': ['Inês/Ines'],
  'es-ES': ['Lucia', 'Sergio'],
  'es-MX': ['Mia', 'Andrés'],
  'es-US': ['Lupe', 'Pedro'],
  'sv-SE': ['Elin'],
};

const pollyStandardSupportedLanguages = [
  'en-US',
  'fr-FR',
  'pl-PL',
  'de-DE',
  'ru-RU',
  'pt-BR',
  'hi-IN',
  'da-DK',
  'nl-NL',
  'is-IS',
  'cy-GB',
  'en-IN',
  'pt-PT',
  'ko-KR',
  'en-GB',
  'it-IT',
  'es-ES',
  'en-GB-WLS',
  'sv-SE',
  'nb-NO',
  'ro-RO',
  'ja-JP',
  'es-US',
  'fr-CA',
  'arb',
  'cmn-CN',
  'tr-TR',
  'es-MX',
  'en-AU',
];

const pollyNeuralSupportedLanguages = [
  'de-AT',
  'sv-SE',
  'pt-BR',
  'ar-AE',
  'fr-CA',
  'hi-IN',
  'de-DE',
  'nl-NL',
  'en-GB',
  'ca-ES',
  'es-US',
  'pt-PT',
  'fr-FR',
  'en-NZ',
  'nb-NO',
  'ko-KR',
  'es-MX',
  'it-IT',
  'ja-JP',
  'yue-CN',
  'es-ES',
  'en-AU',
  'cmn-CN',
  'en-IN',
  'en-US',
  'fi-FI',
  'pl-PL',
  'en-ZA',
];

// 3. Azure TTS
const azureRegions = [
  'australiaeast',
  'australiasoutheast',
  'brazilsouth',
  'canadacentral',
  'canadaeast',
  'centralindia',
  'centralus',
  'eastasia',
  'eastus',
  'eastus2',
  'francecentral',
  'francesouth',
  'germanywestcentral',
  'japaneast',
  'japanwest',
  'koreacentral',
  'koreasouth',
  'northcentralus',
  'northeurope',
  'southafricanorth',
  'southafricawest',
  'southcentralus',
  'southindia',
  'southeastasia',
  'uksouth',
  'ukwest',
  'westcentralus',
  'westeurope',
  'westindia',
  'westus',
  'westus2',
];

const azureSpeechSynthesisLanguagesLocale: { [key: string]: string } = {
  'af-ZA': 'Afrikaans',
  'am-ET': 'አማርኛ',
  'ar-AE': 'العربية (الإمارات)',
  'ar-BH': 'العربية (البحرين)',
  'ar-DZ': 'العربية (الجزائر)',
  'ar-EG': 'العربية (مصر)',
  'ar-IQ': 'العربية (العراق)',
  'ar-JO': 'العربية (الأردن)',
  'ar-KW': 'العربية (الكويت)',
  'ar-LB': 'العربية (لبنان)',
  'ar-LY': 'العربية (ليبيا)',
  'ar-MA': 'العربية (المغرب)',
  'ar-OM': 'العربية (عمان)',
  'ar-QA': 'العربية (قطر)',
  'ar-SA': 'العربية (السعودية)',
  'ar-SY': 'العربية (سوريا)',
  'ar-TN': 'العربية (تونس)',
  'ar-YE': 'العربية (اليمن)',
  'az-AZ': 'Azərbaycanca',
  'bg-BG': 'български',
  'bn-BD': 'বাংলা (বাংলাদেশ)',
  'bn-IN': 'বাংলা (ভারত)',
  'bs-BA': 'Bosanski',
  'ca-ES': 'Català',
  'cs-CZ': 'Čeština',
  'cy-GB': 'Cymraeg',
  'da-DK': 'Dansk',
  'de-AT': 'Deutsch (Österreich)',
  'de-CH': 'Deutsch (Schweiz)',
  'de-DE': 'Deutsch (Deutschland)',
  'el-GR': 'Ελληνικά',
  'en-AU': 'English (Australia)',
  'en-CA': 'English (Canada)',
  'en-GB': 'English (UK)',
  'en-HK': 'English (Hong Kong)',
  'en-IE': 'English (Ireland)',
  'en-IN': 'English (India)',
  'en-KE': 'English (Kenya)',
  'en-NG': 'English (Nigeria)',
  'en-NZ': 'English (New Zealand)',
  'en-PH': 'English (Philippines)',
  'en-SG': 'English (Singapore)',
  'en-TZ': 'English (Tanzania)',
  'en-US': 'English (US)',
  'en-ZA': 'English (South Africa)',
  'es-AR': 'Español (Argentina)',
  'es-BO': 'Español (Bolivia)',
  'es-CL': 'Español (Chile)',
  'es-CO': 'Español (Colombia)',
  'es-CR': 'Español (Costa Rica)',
  'es-CU': 'Español (Cuba)',
  'es-DO': 'Español (República Dominicana)',
  'es-EC': 'Español (Ecuador)',
  'es-ES': 'Español (España)',
  'es-GQ': 'Español (Guinea Ecuatorial)',
  'es-GT': 'Español (Guatemala)',
  'es-HN': 'Español (Honduras)',
  'es-MX': 'Español (México)',
  'es-NI': 'Español (Nicaragua)',
  'es-PA': 'Español (Panamá)',
  'es-PE': 'Español (Perú)',
  'es-PR': 'Español (Puerto Rico)',
  'es-PY': 'Español (Paraguay)',
  'es-SV': 'Español (El Salvador)',
  'es-US': 'Español (Estados Unidos)',
  'es-UY': 'Español (Uruguay)',
  'es-VE': 'Español (Venezuela)',
  'et-EE': 'Eesti',
  'eu-ES': 'Euskara',
  'fa-IR': 'فارسی',
  'fi-FI': 'Suomi',
  'fil-PH': 'Filipino',
  'fr-BE': 'Français (Belgique)',
  'fr-CA': 'Français (Canada)',
  'fr-CH': 'Français (Suisse)',
  'fr-FR': 'Français (France)',
  'ga-IE': 'Gaeilge',
  'gl-ES': 'Galego',
  'gu-IN': 'ગુજરાતી',
  'he-IL': 'עברית',
  'hi-IN': 'हिन्दी',
  'hr-HR': 'Hrvatski',
  'hu-HU': 'Magyar',
  'hy-AM': 'Հայերեն',
  'id-ID': 'Bahasa Indonesia',
  'is-IS': 'Íslenska',
  'it-IT': 'Italiano',
  'ja-JP': '日本語',
  'jv-ID': 'Basa Jawa',
  'ka-GE': 'ქართული',
  'kk-KZ': 'Қазақ',
  'km-KH': 'ខ្មែរ',
  'kn-IN': 'ಕನ್ನಡ',
  'ko-KR': '한국어',
  'lo-LA': 'ລາວ',
  'lt-LT': 'Lietuvių',
  'lv-LV': 'Latviešu',
  'mk-MK': 'Македонски',
  'ml-IN': 'മലയാളം',
  'mn-MN': 'Монгол',
  'mr-IN': 'मराठी',
  'ms-MY': 'Bahasa Melayu',
  'mt-MT': 'Malti',
  'my-MM': 'မြန်မာ',
  'nb-NO': 'Norsk Bokmål',
  'ne-NP': 'नेपाली',
  'nl-BE': 'Nederlands (België)',
  'nl-NL': 'Nederlands (Nederland)',
  'pl-PL': 'Polski',
  'ps-AF': 'پښتو',
  'pt-BR': 'Português (Brasil)',
  'pt-PT': 'Português (Portugal)',
  'ro-RO': 'Română',
  'ru-RU': 'Русский',
  'si-LK': 'සිංහල',
  'sk-SK': 'Slovenčina',
  'sl-SI': 'Slovenščina',
  'so-SO': 'Soomaali',
  'sq-AL': 'Shqip',
  'sr-RS': 'Српски',
  'su-ID': 'Basa Sunda',
  'sv-SE': 'Svenska',
  'sw-KE': 'Kiswahili (Kenya)',
  'sw-TZ': 'Kiswahili (Tanzania)',
  'ta-IN': 'தமிழ் (இந்தியா)',
  'ta-LK': 'தமிழ் (இலங்கை)',
  'ta-MY': 'தமிழ் (மலேசியா)',
  'ta-SG': 'தமிழ் (சிங்கப்பூர்)',
  'te-IN': 'తెలుగు',
  'th-TH': 'ไทย',
  'tr-TR': 'Türkçe',
  'uk-UA': 'Українська',
  'ur-IN': 'اردو (بھارت)',
  'ur-PK': 'اردو (پاکستان)',
  'uz-UZ': "O'zbek",
  'vi-VN': 'Tiếng Việt',
  // "wuu-CN": "吴语",
  // "yue-CN": "粤语",
  'zh-CN': '中文 (中国)',
  'zh-CN-henan': '中文 (河南)',
  // "zh-CN-liaoning": "中文 (辽宁)",
  // "zh-CN-shaanxi": "中文 (陕西)",
  'zh-CN-shandong': '中文 (山东)',
  // "zh-CN-sichuan": "中文 (四川)",
  'zh-HK': '中文 (香港)',
  'zh-TW': '中文 (台湾)',
  'zu-ZA': 'isiZulu',
};

const azureSpeechSynthesisVoices: { [key: string]: string[] } = {
  'af-ZA': ['af-ZA-AdriNeural', 'af-ZA-WillemNeural'],
  'am-ET': ['am-ET-AmehaNeural', 'am-ET-MekdesNeural'],
  'ar-AE': ['ar-AE-FatimaNeural', 'ar-AE-HamdanNeural'],
  'ar-BH': ['ar-BH-AliNeural', 'ar-BH-LailaNeural'],
  'ar-DZ': ['ar-DZ-AminaNeural', 'ar-DZ-IsmaelNeural'],
  'ar-EG': ['ar-EG-SalmaNeural', 'ar-EG-ShakirNeural'],
  'ar-IQ': ['ar-IQ-BasselNeural', 'ar-IQ-RanaNeural'],
  'ar-JO': ['ar-JO-SanaNeural', 'ar-JO-TaimNeural'],
  'ar-KW': ['ar-KW-FahedNeural', 'ar-KW-NouraNeural'],
  'ar-LB': ['ar-LB-LaylaNeural', 'ar-LB-RamiNeural'],
  'ar-LY': ['ar-LY-ImanNeural', 'ar-LY-OmarNeural'],
  'ar-MA': ['ar-MA-JamalNeural', 'ar-MA-MounaNeural'],
  'ar-OM': ['ar-OM-AbdullahNeural', 'ar-OM-AyshaNeural'],
  'ar-QA': ['ar-QA-AmalNeural', 'ar-QA-MoazNeural'],
  'ar-SA': ['ar-SA-HamedNeural', 'ar-SA-ZariyahNeural'],
  'ar-SY': ['ar-SY-AmanyNeural', 'ar-SY-LaithNeural'],
  'ar-TN': ['ar-TN-HediNeural', 'ar-TN-ReemNeural'],
  'ar-YE': ['ar-YE-MaryamNeural', 'ar-YE-SalehNeural'],
  'az-AZ': ['az-AZ-BabekNeural', 'az-AZ-BanuNeural'],
  'bg-BG': ['bg-BG-BorislavNeural', 'bg-BG-KalinaNeural'],
  'bn-BD': ['bn-BD-NabanitaNeural', 'bn-BD-PradeepNeural'],
  'bn-IN': ['bn-IN-BashkarNeural', 'bn-IN-TanishaaNeural'],
  'bs-BA': ['bs-BA-GoranNeural', 'bs-BA-VesnaNeural'],
  'ca-ES': ['ca-ES-AlbaNeural', 'ca-ES-EnricNeural', 'ca-ES-JoanaNeural'],
  'cs-CZ': ['cs-CZ-AntoninNeural', 'cs-CZ-VlastaNeural'],
  'cy-GB': ['cy-GB-AledNeural', 'cy-GB-NiaNeural'],
  'da-DK': ['da-DK-ChristelNeural', 'da-DK-JeppeNeural'],
  'de-AT': ['de-AT-IngridNeural', 'de-AT-JonasNeural'],
  'de-CH': ['de-CH-JanNeural', 'de-CH-LeniNeural'],
  'de-DE': [
    'de-DE-AmalaNeural',
    'de-DE-BerndNeural',
    'de-DE-ChristophNeural',
    'de-DE-ConradNeural',
    'de-DE-ElkeNeural',
    'de-DE-GiselaNeural',
    'de-DE-KasperNeural',
    'de-DE-KatjaNeural',
    'de-DE-KillianNeural',
    'de-DE-KlarissaNeural',
    'de-DE-KlausNeural',
    'de-DE-LouisaNeural',
    'de-DE-MajaNeural',
    'de-DE-RalfNeural',
    'de-DE-TanjaNeural',
  ],
  'el-GR': ['el-GR-AthinaNeural', 'el-GR-NestorasNeural'],
  'en-AU': ['en-AU-NatashaNeural', 'en-AU-WilliamNeural'],
  'en-CA': ['en-CA-ClaraNeural', 'en-CA-LiamNeural'],
  'en-GB': [
    'en-GB-AbbiNeural',
    'en-GB-AlfieNeural',
    'en-GB-BellaNeural',
    'en-GB-ElliotNeural',
    'en-GB-EthanNeural',
    'en-GB-HollieNeural',
    'en-GB-LibbyNeural',
    'en-GB-MaisieNeural',
    'en-GB-NoahNeural',
    'en-GB-OliverNeural',
    'en-GB-OliviaNeural',
    'en-GB-ThomasNeural',
  ],
  'en-HK': ['en-HK-SamNeural', 'en-HK-YanNeural'],
  'en-IE': ['en-IE-ConnorNeural', 'en-IE-EmilyNeural'],
  'en-IN': ['en-IN-NeerjaNeural', 'en-IN-PrabhatNeural'],
  'en-KE': ['en-KE-AsiliaNeural', 'en-KE-ChilembaNeural'],
  'en-NG': ['en-NG-AbeoNeural', 'en-NG-EzinneNeural'],
  'en-NZ': ['en-NZ-MitchellNeural', 'en-NZ-MollyNeural'],
  'en-PH': ['en-PH-JamesNeural', 'en-PH-RosaNeural'],
  'en-SG': ['en-SG-LunaNeural', 'en-SG-WayneNeural'],
  'en-TZ': ['en-TZ-ElimuNeural', 'en-TZ-ImaniNeural'],
  'en-US': [
    'en-US-AmberNeural',
    'en-US-AnaNeural',
    'en-US-AriaNeural',
    'en-US-AshleyNeural',
    'en-US-BrandonNeural',
    'en-US-ChristopherNeural',
    'en-US-CoraNeural',
    'en-US-DavisNeural',
    'en-US-ElizabethNeural',
    'en-US-EricNeural',
    'en-US-GuyNeural',
    'en-US-JacobNeural',
    'en-US-JaneNeural',
    'en-US-JasonNeural',
    'en-US-JennyMultilingualNeural',
    'en-US-JennyNeural',
    'en-US-MichelleNeural',
    'en-US-MonicaNeural',
    'en-US-NancyNeural',
    'en-US-SaraNeural',
    'en-US-SteffanNeural',
    'en-US-TonyNeural',
  ],
  'en-ZA': ['en-ZA-LeahNeural', 'en-ZA-LukeNeural'],
  'es-AR': ['es-AR-ElenaNeural', 'es-AR-TomasNeural'],
  'es-BO': ['es-BO-MarceloNeural', 'es-BO-SofiaNeural'],
  'es-CL': ['es-CL-CatalinaNeural', 'es-CL-LorenzoNeural'],
  'es-CO': ['es-CO-GonzaloNeural', 'es-CO-SalomeNeural'],
  'es-CR': ['es-CR-JuanNeural', 'es-CR-MariaNeural'],
  'es-CU': ['es-CU-BelkysNeural', 'es-CU-ManuelNeural'],
  'es-DO': ['es-DO-EmilioNeural', 'es-DO-RamonaNeural'],
  'es-EC': ['es-EC-AndreaNeural', 'es-EC-LuisNeural'],
  'es-ES': ['es-ES-ElviraNeural'],
  'es-GQ': ['es-GQ-JavierNeural', 'es-GQ-TeresaNeural'],
  'es-GT': ['es-GT-AndresNeural', 'es-GT-MartaNeural'],
  'es-HN': ['es-HN-CarlosNeural', 'es-HN-KarlaNeural'],
  'es-MX': [
    'es-MX-BeatrizNeural',
    'es-MX-CandelaNeural',
    'es-MX-CarlotaNeural',
    'es-MX-CecilioNeural',
    'es-MX-DaliaNeural',
    'es-MX-GerardoNeural',
    'es-MX-LarissaNeural',
    'es-MX-LibertoNeural',
    'es-MX-LucianoNeural',
    'es-MX-MarinaNeural',
    'es-MX-NuriaNeural',
    'es-MX-PelayoNeural',
    'es-MX-RenataNeural',
    'es-MX-YagoNeural',
  ],
  'es-NI': ['es-NI-FedericoNeural', 'es-NI-YolandaNeural'],
  'es-PA': ['es-PA-MargaritaNeural', 'es-PA-RobertoNeural'],
  'es-PE': ['es-PE-AlexNeural', 'es-PE-CamilaNeural'],
  'es-PR': ['es-PR-KarinaNeural', 'es-PR-VictorNeural'],
  'es-PY': ['es-PY-MarioNeural', 'es-PY-TaniaNeural'],
  'es-SV': ['es-SV-LorenaNeural', 'es-SV-RodrigoNeural'],
  'es-US': ['es-US-AlonsoNeural', 'es-US-PalomaNeural'],
  'es-UY': ['es-UY-MateoNeural', 'es-UY-ValentinaNeural'],
  'es-VE': ['es-VE-PaolaNeural', 'es-VE-SebastianNeural'],
  'et-EE': ['et-EE-AnuNeural', 'et-EE-KertNeural'],
  'eu-ES': ['eu-ES-AinhoaNeural', 'eu-ES-AnderNeural'],
  'fa-IR': ['fa-IR-DilaraNeural', 'fa-IR-FaridNeural'],
  'fi-FI': ['fi-FI-HarriNeural', 'fi-FI-NooraNeural', 'fi-FI-SelmaNeural'],
  'fil-PH': ['fil-PH-AngeloNeural', 'fil-PH-BlessicaNeural'],
  'fr-BE': ['fr-BE-CharlineNeural', 'fr-BE-GerardNeural'],
  'fr-CA': ['fr-CA-AntoineNeural', 'fr-CA-JeanNeural', 'fr-CA-SylvieNeural'],
  'fr-CH': ['fr-CH-ArianeNeural', 'fr-CH-FabriceNeural'],
  'fr-FR': [
    'fr-FR-AlainNeural',
    'fr-FR-BrigitteNeural',
    'fr-FR-CelesteNeural',
    'fr-FR-ClaudeNeural',
    'fr-FR-CoralieNeural',
    'fr-FR-EloiseNeural',
    'fr-FR-JacquelineNeural',
    'fr-FR-JeromeNeural',
    'fr-FR-JosephineNeural',
    'fr-FR-MauriceNeural',
    'fr-FR-YvesNeural',
    'fr-FR-YvetteNeural',
  ],
  'ga-IE': ['ga-IE-ColmNeural', 'ga-IE-OrlaNeural'],
  'gl-ES': ['gl-ES-RoiNeural', 'gl-ES-SabelaNeural'],
  'gu-IN': ['gu-IN-DhwaniNeural', 'gu-IN-NiranjanNeural'],
  'he-IL': ['he-IL-AvriNeural', 'he-IL-HilaNeural'],
  'hi-IN': ['hi-IN-MadhurNeural', 'hi-IN-SwaraNeural'],
  'hr-HR': ['hr-HR-GabrijelaNeural', 'hr-HR-SreckoNeural'],
  'hu-HU': ['hu-HU-NoemiNeural', 'hu-HU-TamasNeural'],
  'hy-AM': ['hy-AM-AnahitNeural', 'hy-AM-HaykNeural'],
  'id-ID': ['id-ID-ArdiNeural', 'id-ID-GadisNeural'],
  'is-IS': ['is-IS-GudrunNeural', 'is-IS-GunnarNeural'],
  'it-IT': [
    'it-IT-BenignoNeural',
    'it-IT-CalimeroNeural',
    'it-IT-CataldoNeural',
    'it-IT-ElsaNeural',
    'it-IT-FabiolaNeural',
    'it-IT-FiammaNeural',
    'it-IT-GianniNeural',
    'it-IT-ImeldaNeural',
    'it-IT-IrmaNeural',
    'it-IT-LisandroNeural',
    'it-IT-PalmiraNeural',
    'it-IT-PierinaNeural',
    'it-IT-RinaldoNeural',
  ],
  'ja-JP': ['ja-JP-KeitaNeural', 'ja-JP-NanamiNeural'],
  'jv-ID': ['jv-ID-DimasNeural', 'jv-ID-SitiNeural'],
  'ka-GE': ['ka-GE-EkaNeural', 'ka-GE-GiorgiNeural'],
  'kk-KZ': ['kk-KZ-AigulNeural', 'kk-KZ-DauletNeural'],
  'km-KH': ['km-KH-PisethNeural', 'km-KH-SreymomNeural'],
  'kn-IN': ['kn-IN-GaganNeural', 'kn-IN-SapnaNeural'],
  'ko-KR': ['ko-KR-InJoonNeural', 'ko-KR-SunHiNeural'],
  'lo-LA': ['lo-LA-ChanthavongNeural', 'lo-LA-KeomanyNeural'],
  'lt-LT': ['lt-LT-LeonasNeural', 'lt-LT-OnaNeural'],
  'lv-LV': ['lv-LV-EveritaNeural', 'lv-LV-NilsNeural'],
  'mk-MK': ['mk-MK-AleksandarNeural', 'mk-MK-MarijaNeural'],
  'ml-IN': ['ml-IN-MidhunNeural', 'ml-IN-SobhanaNeural'],
  'mn-MN': ['mn-MN-BataaNeural', 'mn-MN-YesuiNeural'],
  'mr-IN': ['mr-IN-AarohiNeural', 'mr-IN-ManoharNeural'],
  'ms-MY': ['ms-MY-OsmanNeural', 'ms-MY-YasminNeural'],
  'mt-MT': ['mt-MT-GraceNeural', 'mt-MT-JosephNeural'],
  'my-MM': ['my-MM-NilarNeural', 'my-MM-ThihaNeural'],
  'nb-NO': ['nb-NO-FinnNeural', 'nb-NO-IselinNeural', 'nb-NO-PernilleNeural'],
  'ne-NP': ['ne-NP-HemkalaNeural', 'ne-NP-SagarNeural'],
  'nl-BE': ['nl-BE-ArnaudNeural', 'nl-BE-DenaNeural'],
  'nl-NL': ['nl-NL-ColetteNeural'],
  'pl-PL': ['pl-PL-AgnieszkaNeural', 'pl-PL-MarekNeural', 'pl-PL-ZofiaNeural'],
  'ps-AF': ['ps-AF-GulNawazNeural', 'ps-AF-LatifaNeural'],
  'pt-BR': [
    'pt-BR-AntonioNeural',
    'pt-BR-BrendaNeural',
    'pt-BR-DonatoNeural',
    'pt-BR-ElzaNeural',
    'pt-BR-FabioNeural',
    'pt-BR-FranciscaNeural',
    'pt-BR-GiovannaNeural',
    'pt-BR-HumbertoNeural',
    'pt-BR-JulioNeural',
    'pt-BR-LeilaNeural',
    'pt-BR-LeticiaNeural',
    'pt-BR-ManuelaNeural',
    'pt-BR-NicolauNeural',
    'pt-BR-ValerioNeural',
    'pt-BR-YaraNeural',
  ],
  'pt-PT': ['pt-PT-DuarteNeural', 'pt-PT-FernandaNeural', 'pt-PT-RaquelNeural'],
  'ro-RO': ['ro-RO-AlinaNeural', 'ro-RO-EmilNeural'],
  'ru-RU': ['ru-RU-DariyaNeural', 'ru-RU-DmitryNeural', 'ru-RU-SvetlanaNeural'],
  'si-LK': ['si-LK-SameeraNeural', 'si-LK-ThiliniNeural'],
  'sk-SK': ['sk-SK-LukasNeural', 'sk-SK-ViktoriaNeural'],
  'sl-SI': ['sl-SI-PetraNeural', 'sl-SI-RokNeural'],
  'so-SO': ['so-SO-MuuseNeural', 'so-SO-UbaxNeural'],
  'sq-AL': ['sq-AL-AnilaNeural', 'sq-AL-IlirNeural'],
  'sr-RS': ['sr-RS-NicholasNeural', 'sr-RS-SophieNeural'],
  'su-ID': ['su-ID-JajangNeural', 'su-ID-TutiNeural'],
  'sv-SE': ['sv-SE-HilleviNeural', 'sv-SE-MattiasNeural', 'sv-SE-SofieNeural'],
  'sw-KE': ['sw-KE-RafikiNeural', 'sw-KE-ZuriNeural'],
  'sw-TZ': ['sw-TZ-DaudiNeural', 'sw-TZ-RehemaNeural'],
  'ta-IN': ['ta-IN-PallaviNeural', 'ta-IN-ValluvarNeural'],
  'ta-LK': ['ta-LK-KumarNeural', 'ta-LK-SaranyaNeural'],
  'ta-MY': ['ta-MY-KaniNeural', 'ta-MY-SuryaNeural'],
  'ta-SG': ['ta-SG-AnbuNeural', 'ta-SG-VenbaNeural'],
  'te-IN': ['te-IN-MohanNeural', 'te-IN-ShrutiNeural'],
  'th-TH': ['th-TH-AcharaNeural', 'th-TH-NiwatNeural', 'th-TH-PremwadeeNeural'],
  'tr-TR': ['tr-TR-AhmetNeural', 'tr-TR-EmelNeural'],
  'uk-UA': ['uk-UA-OstapNeural', 'uk-UA-PolinaNeural'],
  'ur-IN': ['ur-IN-GulNeural', 'ur-IN-SalmanNeural'],
  'ur-PK': ['ur-PK-AsadNeural', 'ur-PK-UzmaNeural'],
  'uz-UZ': ['uz-UZ-MadinaNeural', 'uz-UZ-SardorNeural'],
  'vi-VN': ['vi-VN-HoaiMyNeural', 'vi-VN-NamMinhNeural'],
  'zh-CN': [
    'zh-CN-XiaochenNeural',
    'zh-CN-XiaohanNeural',
    'zh-CN-XiaomengNeural',
    'zh-CN-XiaomoNeural',
    'zh-CN-XiaoqiuNeural',
    'zh-CN-XiaoruiNeural',
    'zh-CN-XiaoshuangNeural',
    'zh-CN-XiaoxiaoNeural',
    'zh-CN-XiaoxuanNeural',
    'zh-CN-XiaoyanNeural',
    'zh-CN-XiaoyiNeural',
    'zh-CN-XiaoyouNeural',
    'zh-CN-XiaozhenNeural',
    'zh-CN-YunfengNeural',
    'zh-CN-YunhaoNeural',
    'zh-CN-YunjianNeural',
    'zh-CN-YunxiaNeural',
    'zh-CN-YunxiNeural',
    'zh-CN-YunyangNeural',
    'zh-CN-YunyeNeural',
    'zh-CN-YunzeNeural',
  ],
  'zh-CN-henan': ['zh-CN-henan-YundengNeural'],
  'zh-CN-shandong': ['zh-CN-shandong-YunxiangNeural'],
  'zh-HK': ['zh-HK-HiuGaaiNeural', 'zh-HK-HiuMaanNeural'],
  'zh-TW': ['zh-TW-HsiaoChenNeural', 'zh-TW-HsiaoYuNeural', 'zh-TW-YunJheNeural'],
  'zu-ZA': ['zu-ZA-ThandoNeural', 'zu-ZA-ThembaNeural'],
};
// Speech Recognition

// 1. System
// const speechRecognitionSystemLanguages: { [key: string]: string } = {
//   // System language names for speech recognition
//   'en-US': 'English',
//   'es-ES': 'Spanish',
//   'fr-FR': 'French',
//   'de-DE': 'German',
//   'it-IT': 'Italian',
//   'ja-JP': 'Japanese',
//   'ko-KR': 'Korean',
//   'zh-CN': 'Chinese',
//   'ar-SA': 'Arabic',
//   'pt-BR': 'Portuguese',
//   'ru-RU': 'Russian',
//   'nl-NL': 'Dutch',
//   'tr-TR': 'Turkish',
//   'sv-SE': 'Swedish',
//   'hi-IN': 'Hindi',
//   'el-GR': 'Greek',
//   'he-IL': 'Hebrew',
//   'id-ID': 'Indonesian',
//   'pl-PL': 'Polish',
//   'th-TH': 'Thai',
//   'cs-CZ': 'Czech',
//   'hu-HU': 'Hungarian',
//   'da-DK': 'Danish',
//   'fi-FI': 'Finnish',
//   'no-NO': 'Norwegian',
//   'sk-SK': 'Slovak',
//   'uk-UA': 'Ukrainian',
//   'vi-VN': 'Vietnamese',
// };

// https://stackoverflow.com/questions/23733537/what-are-the-supported-languages-for-web-speech-api-in-html5
const speechRecognitionSystemLanguagesLocale: { [key: string]: string } = {
  'en-US': 'English(United States)',
  'en-GB': 'English(United Kingdom)',
  'en-IN': 'English(India)',
  'es-ES': 'Español',
  'fr-FR': 'Français',
  'de-DE': 'Deutsch',
  'it-IT': 'Italiano',
  'ja-JP': '日本語',
  'ko-KR': '한국어',
  'cmn-Hans-CN': '普通话 (中国大陆)',
  'cmn-Hans-HK': '普通话 (香港)',
  'yue-Hant-HK': '粵語 (香港)',
  'ar-SA': 'العربية',
  'pt-BR': 'Português',
  'ru-RU': 'Русский',
  'nl-NL': 'Nederlands',
  'tr-TR': 'Türkçe',
  'sv-SE': 'Svenska',
  'hi-IN': 'हिन्दी',
  'el-GR': 'Ελληνικά',
  'he-IL': 'עברית',
  'id-ID': 'Bahasa Indonesia',
  'pl-PL': 'Polski',
  'th-TH': 'ไทย',
  'cs-CZ': 'Čeština',
  'hu-HU': 'Magyar',
  'da-DK': 'Dansk',
  'fi-FI': 'Suomi',
  'no-NO': 'Norsk',
  'sk-SK': 'Slovenčina',
  'uk-UA': 'Українська',
  'vi-VN': 'Tiếng Việt',
};

// 2. Azure Speech Services

const azureSpeechRecognitionLanguagesLocale: { [key: string]: string } = {
  'af-ZA': 'Afrikaans (Suid-Afrika)',
  'am-ET': 'አማርኛ (ኢትዮጵያ)',
  'ar-AE': 'العربية (الإمارات العربية المتحدة)',
  'ar-BH': 'العربية (البحرين)',
  'ar-DZ': 'العربية (الجزائر)',
  'ar-EG': 'العربية (مصر)',
  'ar-IL': 'العربية (إسرائيل)',
  'ar-IQ': 'العربية (العراق)',
  'ar-JO': 'العربية (الأردن)',
  'ar-KW': 'العربية (الكويت)',
  'ar-LB': 'العربية (لبنان)',
  'ar-LY': 'العربية (ليبيا)',
  'ar-MA': 'العربية (المغرب)',
  'ar-OM': 'العربية (عمان)',
  'ar-PS': 'العربية (الأراضي الفلسطينية)',
  'ar-QA': 'العربية (قطر)',
  'ar-SA': 'العربية (المملكة العربية السعودية)',
  'ar-SY': 'العربية (سوريا)',
  'ar-TN': 'العربية (تونس)',
  'ar-YE': 'العربية (اليمن)',
  'az-AZ': 'Azərbaycanca (Azərbaycan)',
  'bg-BG': 'български (България)',
  'bn-IN': 'বাংলা (ভারত)',
  'bs-BA': 'Bosanski (Bosna i Hercegovina)',
  'ca-ES': 'Català (Espanya)',
  'cs-CZ': 'Čeština (Česká republika)',
  'cy-GB': 'Cymraeg (Y Deyrnas Unedig)',
  'da-DK': 'Dansk (Danmark)',
  'de-AT': 'Deutsch (Österreich)',
  'de-CH': 'Deutsch (Schweiz)',
  'de-DE': 'Deutsch (Deutschland)',
  'el-GR': 'Ελληνικά (Ελλάδα)',
  'en-AU': 'English (Australia)',
  'en-CA': 'English (Canada)',
  'en-GB': 'English (United Kingdom)',
  'en-GH': 'English (Ghana)',
  'en-HK': 'English (Hong Kong)',
  'en-IE': 'English (Ireland)',
  'en-IN': 'English (India)',
  'en-KE': 'English (Kenya)',
  'en-NG': 'English (Nigeria)',
  'en-NZ': 'English (New Zealand)',
  'en-PH': 'English (Philippines)',
  'en-SG': 'English (Singapore)',
  'en-TZ': 'English (Tanzania)',
  'en-US': 'English (United States)',
  'en-ZA': 'English (South Africa)',
  'es-AR': 'Español (Argentina)',
  'es-BO': 'Español (Bolivia)',
  'es-CL': 'Español (Chile)',
  'es-CO': 'Español (Colombia)',
  'es-CR': 'Español (Costa Rica)',
  'es-CU': 'Español (Cuba)',
  'es-DO': 'Español (República Dominicana)',
  'es-EC': 'Español (Ecuador)',
  'es-ES': 'Español (España)',
  'es-GQ': 'Español (Guinea Ecuatorial)',
  'es-GT': 'Español (Guatemala)',
  'es-HN': 'Español (Honduras)',
  'es-MX': 'Español (México)',
  'es-NI': 'Español (Nicaragua)',
  'es-PA': 'Español (Panamá)',
  'es-PE': 'Español (Perú)',
  'es-PR': 'Español (Puerto Rico)',
  'es-PY': 'Español (Paraguay)',
  'es-SV': 'Español (El Salvador)',
  'es-US': 'Español (Estados Unidos)',
  'es-UY': 'Español (Uruguay)',
  'es-VE': 'Español (Venezuela)',
  'et-EE': 'Eesti (Eesti)',
  'eu-ES': 'Euskara (Espainia)',
  'fa-IR': 'فارسی (ایران)',
  'fi-FI': 'Suomi (Suomi)',
  'fil-PH': 'Filipino (Pilipinas)',
  'fr-BE': 'Français (Belgique)',
  'fr-CA': 'Français (Canada)',
  'fr-CH': 'Français (Suisse)',
  'fr-FR': 'Français (France)',
  'ga-IE': 'Gaeilge (Éire)',
  'gl-ES': 'Galego (España)',
  'gu-IN': 'ગુજરાતી (ભારત)',
  'he-IL': 'עברית (ישראל)',
  'hi-IN': 'हिंदी (भारत)',
  'hr-HR': 'Hrvatski (Hrvatska)',
  'hu-HU': 'Magyar (Magyarország)',
  'hy-AM': 'Հայերեն (Հայաստան)',
  'id-ID': 'Bahasa Indonesia (Indonesia)',
  'is-IS': 'Íslenska (Ísland)',
  'it-CH': 'Italiano (Svizzera)',
  'it-IT': 'Italiano (Italia)',
  'ja-JP': '日本語 (日本)',
  'jv-ID': 'ꦧꦱꦗꦮ (ꦲꦶꦤꦺꦴꦤꦺꦱꦶꦪ)',
  'ka-GE': 'ქართული (საქართველო)',
  'kk-KZ': 'Қазақ (Қазақстан)',
  'km-KH': 'ខ្មែរ (កម្ពុជា)',
  'kn-IN': 'ಕನ್ನಡ (ಭಾರತ)',
  'ko-KR': '한국어 (대한민국)',
  'lo-LA': 'ລາວ (ລາວ)',
  'lt-LT': 'Lietuvių (Lietuva)',
  'lv-LV': 'Latviešu (Latvija)',
  'mk-MK': 'Македонски (Северна Македонија)',
  'ml-IN': 'മലയാളം (ഇന്ത്യ)',
  'mn-MN': 'Монгол (Монгол)',
  'mr-IN': 'मराठी (भारत)',
  'ms-MY': 'Bahasa Melayu (Malaysia)',
  'mt-MT': 'Malti (Malta)',
  'my-MM': 'မြန်မာ (မြန်မာ)',
  'nb-NO': 'Norsk Bokmål (Norge)',
  'ne-NP': 'नेपाली (नेपाल)',
  'nl-BE': 'Nederlands (België)',
  'nl-NL': 'Nederlands (Nederland)',
  'pl-PL': 'Polski (Polska)',
  'ps-AF': 'پښتو (افغانستان)',
  'pt-BR': 'Português (Brasil)',
  'pt-PT': 'Português (Portugal)',
  'ro-RO': 'Română (România)',
  'ru-RU': 'Русский (Россия)',
  'si-LK': 'සිංහල (ශ්‍රී ලංකා)',
  'sk-SK': 'Slovenčina (Slovensko)',
  'sl-SI': 'Slovenščina (Slovenija)',
  'so-SO': 'Soomaali (Soomaaliya)',
  'sq-AL': 'Shqip (Shqipëri)',
  'sr-RS': 'Српски (Србија)',
  'sv-SE': 'Svenska (Sverige)',
  'sw-KE': 'Kiswahili (Kenya)',
  'sw-TZ': 'Kiswahili (Tanzania)',
  'ta-IN': 'தமிழ் (இந்தியா)',
  'te-IN': 'తెలుగు (భారత దేశం)',
  'th-TH': 'ภาษาไทย (ประเทศไทย)',
  'tr-TR': 'Türkçe (Türkiye)',
  'uk-UA': 'Українська (Україна)',
  'uz-UZ': "O'zbek (O'zbekiston)",
  'vi-VN': 'Tiếng Việt (Việt Nam)',
  'wuu-CN': '吴语 (中国)',
  'yue-CN': '粤语 (中国)',
  'zh-CN': '中文（普通话 / 中国）',
  'zh-CN-sichuan': '四川话（中国）',
  'zh-HK': '中文（香港）',
  'zh-TW': '中文（台灣）',
  'zu-ZA': 'isiZulu (iNingizimu Afrika)',
};

// 139 languages
const azureSpeechRecognitionLanguages: { [key: string]: string } = {
  'af-ZA': 'Afrikaans (South Africa)',
  'am-ET': 'Amharic (Ethiopia)',
  'ar-AE': 'Arabic (United Arab Emirates)',
  'ar-BH': 'Arabic (Bahrain)',
  'ar-DZ': 'Arabic (Algeria)',
  'ar-EG': 'Arabic (Egypt)',
  'ar-IL': 'Arabic (Israel)',
  'ar-IQ': 'Arabic (Iraq)',
  'ar-JO': 'Arabic (Jordan)',
  'ar-KW': 'Arabic (Kuwait)',
  'ar-LB': 'Arabic (Lebanon)',
  'ar-LY': 'Arabic (Libya)',
  'ar-MA': 'Arabic (Morocco)',
  'ar-OM': 'Arabic (Oman)',
  'ar-PS': 'Arabic (Palestinian Territories)',
  'ar-QA': 'Arabic (Qatar)',
  'ar-SA': 'Arabic (Saudi Arabia)',
  'ar-SY': 'Arabic (Syria)',
  'ar-TN': 'Arabic (Tunisia)',
  'ar-YE': 'Arabic (Yemen)',
  'az-AZ': 'Azerbaijani (Azerbaijan)',
  'bg-BG': 'Bulgarian (Bulgaria)',
  'bn-IN': 'Bengali (India)',
  'bs-BA': 'Bosnian (Bosnia and Herzegovina)',
  'ca-ES': 'Catalan (Spain)',
  'cs-CZ': 'Czech (Czech Republic)',
  'cy-GB': 'Welsh (United Kingdom)',
  'da-DK': 'Danish (Denmark)',
  'de-AT': 'German (Austria)',
  'de-CH': 'German (Switzerland)',
  'de-DE': 'German (Germany)',
  'el-GR': 'Greek (Greece)',
  'en-AU': 'English (Australia)',
  'en-CA': 'English (Canada)',
  'en-GB': 'English (United Kingdom)',
  'en-GH': 'English (Ghana)',
  'en-HK': 'English (Hong Kong)',
  'en-IE': 'English (Ireland)',
  'en-IN': 'English (India)',
  'en-KE': 'English (Kenya)',
  'en-NG': 'English (Nigeria)',
  'en-NZ': 'English (New Zealand)',
  'en-PH': 'English (Philippines)',
  'en-SG': 'English (Singapore)',
  'en-TZ': 'English (Tanzania)',
  'en-US': 'English (United States)',
  'en-ZA': 'English (South Africa)',
  'es-AR': 'Spanish (Argentina)',
  'es-BO': 'Spanish (Bolivia)',
  'es-CL': 'Spanish (Chile)',
  'es-CO': 'Spanish (Colombia)',
  'es-CR': 'Spanish (Costa Rica)',
  'es-CU': 'Spanish (Cuba)',
  'es-DO': 'Spanish (Dominican Republic)',
  'es-EC': 'Spanish (Ecuador)',
  'es-ES': 'Spanish (Spain)',
  'es-GQ': 'Spanish (Equatorial Guinea)',
  'es-GT': 'Spanish (Guatemala)',
  'es-HN': 'Spanish (Honduras)',
  'es-MX': 'Spanish (Mexico)',
  'es-NI': 'Spanish (Nicaragua)',
  'es-PA': 'Spanish (Panama)',
  'es-PE': 'Spanish (Peru)',
  'es-PR': 'Spanish (Puerto Rico)',
  'es-PY': 'Spanish (Paraguay)',
  'es-SV': 'Spanish (El Salvador)',
  'es-US': 'Spanish (United States)',
  'es-UY': 'Spanish (Uruguay)',
  'es-VE': 'Spanish (Venezuela)',
  'et-EE': 'Estonian (Estonia)',
  'eu-ES': 'Basque (Spain)',
  'fa-IR': 'Persian (Iran)',
  'fi-FI': 'Finnish (Finland)',
  'fil-PH': 'Filipino (Philippines)',
  'fr-BE': 'French (Belgium)',
  'fr-CA': 'French (Canada)',
  'fr-CH': 'French (Switzerland)',
  'fr-FR': 'French (France)',
  'ga-IE': 'Irish (Ireland)',
  'gl-ES': 'Galician (Spain)',
  'gu-IN': 'Gujarati (India)',
  'he-IL': 'Hebrew (Israel)',
  'hi-IN': 'Hindi (India)',
  'hr-HR': 'Croatian (Croatia)',
  'hu-HU': 'Hungarian (Hungary)',
  'hy-AM': 'Armenian (Armenia)',
  'id-ID': 'Indonesian (Indonesia)',
  'is-IS': 'Icelandic (Iceland)',
  'it-CH': 'Italian (Switzerland)',
  'it-IT': 'Italian (Italy)',
  'ja-JP': 'Japanese (Japan)',
  'jv-ID': 'Javanese (Indonesia)',
  'ka-GE': 'Georgian (Georgia)',
  'kk-KZ': 'Kazakh (Kazakhstan)',
  'km-KH': 'Khmer (Cambodia)',
  'kn-IN': 'Kannada (India)',
  'ko-KR': 'Korean (South Korea)',
  'lo-LA': 'Lao (Laos)',
  'lt-LT': 'Lithuanian (Lithuania)',
  'lv-LV': 'Latvian (Latvia)',
  'mk-MK': 'Macedonian (North Macedonia)',
  'ml-IN': 'Malayalam (India)',
  'mn-MN': 'Mongolian (Mongolia)',
  'mr-IN': 'Marathi (India)',
  'ms-MY': 'Malay (Malaysia)',
  'mt-MT': 'Maltese (Malta)',
  'my-MM': 'Burmese (Myanmar)',
  'nb-NO': 'Norwegian Bokmål (Norway)',
  'ne-NP': 'Nepali (Nepal)',
  'nl-BE': 'Dutch (Belgium)',
  'nl-NL': 'Dutch (Netherlands)',
  'pl-PL': 'Polish (Poland)',
  'ps-AF': 'Pashto (Afghanistan)',
  'pt-BR': 'Portuguese (Brazil)',
  'pt-PT': 'Portuguese (Portugal)',
  'ro-RO': 'Romanian (Romania)',
  'ru-RU': 'Russian (Russia)',
  'si-LK': 'Sinhala (Sri Lanka)',
  'sk-SK': 'Slovak (Slovakia)',
  'sl-SI': 'Slovenian (Slovenia)',
  'so-SO': 'Somali (Somalia)',
  'sq-AL': 'Albanian (Albania)',
  'sr-RS': 'Serbian (Serbia)',
  'sv-SE': 'Swedish (Sweden)',
  'sw-KE': 'Swahili (Kenya)',
  'sw-TZ': 'Swahili (Tanzania)',
  'ta-IN': 'Tamil (India)',
  'te-IN': 'Telugu (India)',
  'th-TH': 'Thai (Thailand)',
  'tr-TR': 'Turkish (Turkey)',
  'uk-UA': 'Ukrainian (Ukraine)',
  'uz-UZ': 'Uzbek (Uzbekistan)',
  'vi-VN': 'Vietnamese (Vietnam)',
  'wuu-CN': 'Wu Chinese (China)',
  'yue-CN': 'Yue Chinese (China)',
  'zh-CN': 'Chinese (China)',
  'zh-CN-sichuan': 'Sichuanese (China)',
  'zh-HK': 'Chinese (Hong Kong)',
  'zh-TW': 'Chinese (Taiwan)',
  'zu-ZA': 'Zulu (South Africa)',
};

export {
  amazonPollyEngines,
  speechSynthesisServices,
  speechSynthesisSystemLanguages,
  amazonPollyLanguages,
  azureSpeechSynthesisLanguagesLocale,
  azureSpeechSynthesisVoices,
  pollyStandardVoices,
  pollyNeuralVoices,
  pollyStandardSupportedLanguages,
  pollyNeuralSupportedLanguages,
  awsRegions,
  azureRegions,
  // speechRecognitionSystemLanguages,
  speechRecognitionSystemLanguagesLocale,
  azureSpeechRecognitionLanguages,
  azureSpeechRecognitionLanguagesLocale,
};
